来源:https://blogs.windows.com/msedgedev/
作者:Microsoft Edge Team
今天的浏览器更像是操作系统,而不是文档查看器。用户在浏览器中执行的任务越来越多,而在桌面应用程序中执行的任务越来越少。然而,每个网页、Web应用和扩展都会使用内存。因此,用户经常会关心内存使用情况如何影响他们的体验。我们正在努力开发解决方案,以解决这一问题。这些解决方案包括为网站和扩展开发者提供信息,帮助他们使用更少的资源,并帮助用户了解他们的浏览习惯如何影响Microsoft Edge的资源使用。我们将在未来几个月内分享更多关于Microsoft Edge的内存使用情况,从今天的文章开始深入探讨Microsoft Edge的多进程架构。我们希望这能让您深入了解Microsoft Edge如何使用您的计算机资源,浏览习惯如何影响资源使用,以及您如何帮助我们让Microsoft Edge变得更好。多进程体系结构如何帮助提高浏览器的安全性和可靠性
许多浏览器是使用多进程体系结构构建的,这意味着浏览器被划分为不同的进程。浏览器进程(Browser process): 这是主要的进程,它帮助管理窗口和标签,并控制浏览器框架,如地址栏和前进和后退按钮。它还可以对网络请求和文件访问等实用程序的特权访问进行路由。渲染进程(Renderer processes): 这些控件通过执行网站提供的代码来控制网站如何在标签页中渲染。它们处理HTML、CSS、JavaScript、图像等。每个渲染器进程的资源使用情况都取决于所托管的内容。GPU进程(GPU process): 该进程负责与GPU(图形处理单元)进行通信并处理所有GPU任务。GPU是一种硬件,可以快速执行与图形相关的计算,并将输出发送到显示器以进行显示,现代浏览器使用GPU来快速渲染网页。实用程序进程(Utility processes): 音频播放、网络服务、视频采集、数据解码、收藏管理器都由这些进程来处理,这样Microsoft Edge就可以控制和审核这些资源的访问,协调全局系统资源的使用。插件进行和扩展程序进程(Plug-in processes and extension processes): 插件进程包含活动插件,例如Adobe Flash,而扩展进程包含活动扩展。每个进程执行由插件或扩展提供的代码,每个进程的资源使用情况根据所提供的代码而不同。每个进程也有允许插件或扩展与浏览器和渲染器进程通信的代码。Crashpad处理程序进程(Crashpad handler process): 这可以跟踪Microsoft Edge中不同进程的健康状况。如果Microsoft Edge崩溃,这个过程将帮助浏览器捕获并将崩溃报告传输到微软服务器,我们使用这些崩溃报告来寻找和修复崩溃。现在我们已经介绍了每个进程的作用,让我们来看看一个进程的例子,它将为一个打开了一个标签页并在Microsoft Edge中打开了两个扩展的用户运行。如果用户打开Windows任务管理器,则将显示进程:
在此示例中,用户将看到九个进程正在运行:
- 两个扩展进程,每个扩展进程一个,运行扩展提供的代码
- 一个监控Microsoft Edge健康状况的crashpad处理程序
现在让我们来看另一个例子。在下一个示例中,用户打开了四个选项卡,并启用了两个扩展(图2)。每个标签都有一个广告(两个来自一个来源,两个来自另一个来源)。在此示例中,如果用户打开任务管理器,他们将看到14个进程正在运行:
- 两个扩展进程,每个扩展进程一个,运行扩展提供的代码
- 一个监控Microsoft Edge健康状况的crashpad处理程序
一些例子更加复杂。您可能会看到对您不可见的子框架的其他进程,或者您可能会看到项目(如service workers人员或web workers)与选项卡或子框架共享进程。service workers和web workers是在后台运行的脚本,以提高性能,并允许您在没有互联网连接的情况下使用一些网站和应用程序。Chromium's多进程架构:https://www.chromium.org/developers/design-documents/multi-process-architecture
多进程架构的好处
每个进程都有不同的目的,影响进程总数的因素很多。那么,Microsoft Edge为什么要使用这种多进程架构呢?与其他现代浏览器一样,Microsoft Edge使用这种架构来提高安全性、可靠性和对浏览器如何使用资源的可问责性。Microsoft Edge基于Chromium项目构建,并与其他Chromium浏览器共享一个通用实现。增强的安全性
如果恶意软件利用了一个渲染器进程中的安全漏洞,则很难逃脱该进程并影响另一个进程。渲染器进程是最有可能受到攻击的进程,因为它是与网站交互的进程。该进程的特权较低,并且对操作系统的访问受到极大限制,因此,如果恶意软件控制该进程,则它将无法控制该计算机。渲染器进程和浏览器进程之间的通信范围狭窄且受到保护,恶意软件很难利用此优势来利用浏览器进程。另外,进程隔离可以防止一个进程访问另一个进程的内存,这也提高了浏览器的安全性。举例来说,假设您正在网上购买衬衫,并且该网站上有一个广告。您所访问的网站需要访问您的信用卡信息才能完成交易;但是,广告不需要访问此信息。广告将按照自己的流程进行处理,因此即使广告遭到入侵,也无法轻松访问您的敏感信息。可靠性
如果网页、Web应用、扩展程序或插件发生崩溃,只有正在崩溃的进程才会受到影响,提高浏览器的可靠性。浏览器的其余部分,包括大多数其他选项卡,将保持稳定。资源问责制
隔离每个进程,可以更容易地在任务管理器中看到哪个进程使用了最多的资源,并提供有关哪些资源使用的信息。Microsoft Edge使用最多的资源,还是网站,扩展程序或插件?您还可以在Microsoft Edge的内部任务管理器中看到这些信息,您可以在Microsoft Edge中按Shift+Esc键打开,或者进入浏览器的上角,选择设置和更多(...)>更多工具>浏览器任务管理器。请继续关注即将发布的博客文章,我们将在其中学习计算机如何管理内存。Microsoft Edge隐私白皮书:https://docs.microsoft.com/en-us/microsoft-edge/privacy-whitepaper
– Microsoft Edge程序经理Allison Pastewka
相关阅读
引入适用于双屏和可折叠设备的Web API
听说你熟练使用Vue.js,这9种Vue技术你掌握了吗?
在Vue Vite应用程序中实现暗/亮模式
2020 开发人员生态系统现状
粉丝福利
- 福利1:某慕网课程《React Hooks重构去哪网购票》获取地址和密码请在公众号中回复关键字:002
- 福利2:在看+留言,张张会在留言区随机抽取一位认真留言的小伙伴,给他发一个红包奖励
108期留言中奖用户:天使投资@小鸡兄弟
- END -
走心的分享更容易被抽中~
开奖时间 下期文末
点赞 + 在看 + 留言
下一个幸运儿就是你
👇